package com.hsh.member.controller;


import com.hsh.member.base.Result;
import com.hsh.member.entity.Goods;
import com.hsh.member.req.GoodsREQ;
import com.hsh.member.service.IGoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 商品信息表 前端控制器
 * </p>
 *
 * @author 海上花-www.hsh.com
 * @since 2022-12-01
 */
@RestController //返回json格式数据
@RequestMapping("/goods")
public class GoodsController {

    @Autowired
    private IGoodsService goodsService;


    /*
     localhost:7777/goods/list/search/1/20
     */
    @PostMapping("/list/search/{page}/{size}")
    public Result search(@PathVariable("page") long page,
                         @PathVariable("size") long size,
                         //  @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
                         // 一般都用POST方式进行提交 一个请求，只有一个RequestBody
                         @RequestBody(required = false) GoodsREQ req) {
        return  goodsService.search(page, size, req);
    }

    /*
     新增商品
     localhost:7777/goods
     */

    @PostMapping
    public Result add(@RequestBody Goods goods){
        boolean b = goodsService.save(goods);
        if(b){
            return Result.ok();
        }
        return  Result.error("新增商品失败");
    }

    @DeleteMapping({"/{id}"})
    public Result delete(@PathVariable("id")int id){
        boolean b = goodsService.removeById(id);
        if(b){
            return Result.ok();
        }
        return Result.error("删除商品信息失败");
    }

    /*
       查询商品详情 localhost:7777/goods/1
     */
    @GetMapping("/{id}")
    public Result get(@PathVariable("id")int id){
        return goodsService.findById(id);
    }

    /*
      更新商品信息
     */
    @PutMapping("/{id}")
    public  Result update(@PathVariable("id")int id,
                          @RequestBody Goods goods){
        return  goodsService.update(id,goods);
    }


}
